package com.doitedu.core

import com.doitedu.utils.SparkUtil

/**
 * @Date: 22.6.29 
 * @Author: HANGGE
 * @qq: 598196583
 * @Tips: 学大数据 ,到多易教育
 * @Description:
 * map  转换算子  返回新的RDD
 *
 */
object C09_Transformations_Operator_Map02 {
  def main(args: Array[String]): Unit = {
    val sc = SparkUtil
      .getSparkContext("map算子")

    val rdd1 = sc.textFile("data/")
    /**
     * map算子  内部的函数 f   根据分区个数  在各个分区内执行
     *  迭代所在分区内的每个元素  分别处理
     *  f 运行在不同的机器上的
     */
    val rdd2 = rdd1.map(_.toUpperCase)
    /**
     * flatMap 将集合内的元素扁平化
     * 执行原理和map算子一样: 在每个分区内执行  处理每条数据
     * 返回新的RDD
     */
    val words = rdd2.flatMap(_.split("\\s+"))
    // map可以处理元组数据
    words.map((_,1)).map(tp=>(tp._1.toLowerCase , tp._2))

    // 执行行动算子

  }

}
